package com.broadcaster.broadcaster.demo.model.vetcvehiclebill.domain.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;


@Data
@TableName("t_vetc_vehicle_bill")
public class VetcVehicleBillEntity {

    /**
     * 账单编号 yyyyMMddHHmmss + 2位账单类型（00/ETC账单 01/V-ETC账单） + 6位随机数
     */
    @TableId
    private String billId;

    /**
     * 账单日期 yyyy-MM-dd
     */
    private String billDate;

    /**
     * 车牌号码
     */
    private String vehiclePlate;

    /**
     * 车牌颜色：0-蓝色、1-黄色、2-黑色、3-白色、4-渐变绿色、5-黄绿双拼色、6-蓝白渐变色、7-临时牌照、9-未确定、11-绿色、 12-红色
     */
    private Integer plateColor;

    /**
     * 子账单涵盖的车型，多个车型逗号隔开：1-一型客车、2-二型客车、3-三型客车、4-四型客车11-一型货车 12-二型货车、13-三型货车、14-四型货车、15-五型货车、16-六型货车 21-一型专项作业车、22-二型专项作业车、23-三型专项作业车、24-四型专项作业车、25-五型专项作业车、26-六型专项作业车
     */
    private String vehicleType;

    /**
     * 计费金额(账单金额)
     */
    private BigDecimal chargeFee;

    /**
     * 优惠金额
     */
    private BigDecimal discountFee;

    /**
     * 应收金额，= 计费金额 - 优惠金额
     */
    private BigDecimal receivableFee;

    /**
     * 已收金额
     */
    private BigDecimal receivedFee;

    /**
     * 待支付金额，= 应收金额 - 实收金额
     */
    private BigDecimal payFee;

    /**
     * 退费金额
     */
    private BigDecimal refundFee;

    /**
     * 实收金额，= 已收金额 - 退费金额
     */
    private BigDecimal receiptsFee;

    /**
     * 出账状态 0/未出账 1/已出账
     */
    private Integer outgoingStatus;

    /**
     * 出账时间
     */
    private LocalDateTime outgoingTime;

    /**
     * 账单状态 0/正常 1/冻结 2/作废
     */
    private Integer billStatus;

    /**
     * 冻结标识 0/非冻结 1/固化账单 2/线上支付 3/修改账单 4/账单有误 5/正在退款 11/助缴
     */
    private Integer freezeFlag;

    /**
     * 冻结时间
     */
    private LocalDateTime freezeTime;

    /**
     * 作废时间
     */
    private LocalDateTime cancelTime;

    /**
     * 结算状态 0/未结算 1/已部分结算 2/已全部结算
     */
    private Integer settleStatus;

    /**
     * (最后)结算时间
     */
    private LocalDateTime settleTime;

    /**
     * 结算月份，多次结算逗号隔开
     */
    private String settleMonth;

    /**
     * 支付渠道，多次结算逗号隔开
     */
    private String payChannel;

    /**
     * 支付方式，多次结算逗号隔开
     */
    private String payWay;

    /**
     * 退款状态 0/无退款 1/部分退款 2/全部退款
     */
    private Integer refundStatus;

    /**
     * 开票状态 0/未开票 1/已全部开票 2/已部分开票
     */
    private Integer invoiceStatus;

    /**
     * 开票年份，多次开票逗号隔开
     */
    private String invoiceYear;

    /**
     * 开票总金额
     */
    private BigDecimal invoiceFee;

    /**
     * 计费流水月份，多个月份逗号隔开
     */
    private String flowMonth;

    /**
     * 流水通行月份，多个月份逗号隔开
     */
    private String flowPassMonth;

    /**
     * 流水数量
     */
    private Integer flowNum;

    /**
     * 账单里程，单位：公里
     */
    private BigDecimal billMileage;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;


}
